Storage device, server device including the storage device and method of operating the storage device

ABSTRACT

A storage device, a server device including the storage device and a method of operating the storage device are provided. The storage device includes a nonvolatile memory configured to store first control information related to a memory operation performed in a first temperature range and second control information related to a memory operation performed in a second temperature range different from the first temperature range, the first control information and the second control information being stored separately from each other, and a storage controller configured to receive a temperature sensed from a temperature sensor, determine a target temperature by processing the sensed temperature, select one of the first control information and the second control information based on the determined target temperature, and perform a memory operation on the nonvolatile memory using the selected control information.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority from Korean Patent Application No.10-2020-0153813 filed on Nov. 17, 2020 in the Korean IntellectualProperty Office, and all the benefits accruing therefrom under 35 U.S.C.119, the contents of which in its entirety are herein incorporated byreference.

BACKGROUND 1. Field

The present disclosure relates to a storage device, a server deviceincluding the storage device and a method of operating the storagedevice.

2. Description of the Related Art

In general, a large number of storage devices are applied to a serverdevice. In recent server devices, the concept of server disaggregationis applied in which a sled is implemented by separating each function,and examples of such sleds are CPU sleds for a plurality of operations,network sleds for communication with other server devices, acceleratorsleds for fast operation processing, and a plurality of storage sledsfor data storage, and the like.

In order to improve the efficiency and reduce the cost of the serverdevice, research has recently been conducted to integrate more storagedevices into a storage sled unit. In this case, since the number ofstorage devices disposed in the storage sled unit increases, heatmanagement of the storage device is emerging as a very importantproblem.

SUMMARY

It is an aspect to provide a storage device with improved operatingperformance.

It is another aspect to provide a server device with improved operatingperformance.

It is yet another aspect to provide a method of operating a storagedevice with improved operating performance.

According to an aspect of one or more embodiments, there is provided astorage device comprising a temperature sensor; a nonvolatile memoryconfigured to store first control information related to a firsttemperature range and second control information related to a secondtemperature range different from the first temperature range; and astorage controller configured to receive a temperature sensed from thetemperature sensor, determine a target temperature by processing thetemperature, select one of the first control information and the secondcontrol information based on the target temperature, and perform amemory operation on the nonvolatile memory using the one of the firstcontrol information and the second control information.

According to another aspect of one or more embodiments, there isprovided a server device comprising a first storage device disposed at afirst position within the server device and including a firstnonvolatile memory; a second storage device disposed at a secondposition within the server device different from the first position andincluding a second nonvolatile memory; and a first storage serverincluding at least one of the first storage device and the secondstorage device, wherein the first storage device receives first controlinformation related to a first temperature range and second controlinformation related to a second temperature range different from thefirst temperature range, the first storage device includes a firststorage controller configured to select one of the first controlinformation and the second control information, and perform a memoryoperation on the first nonvolatile memory using the one of the firstcontrol information and the second control information selected by thefirst storage controller, the second storage device includes a secondstorage controller configured to receive the first control informationand the second control information, select one of the first controlinformation and the second control information, and perform a memoryoperation on the second nonvolatile memory using the one of the firstcontrol information and the second control information selected by thesecond storage controller, the first storage controller performs thememory operation on the first nonvolatile memory using the first controlinformation, and the second storage controller performs the memoryoperation on the second nonvolatile memory using the second controlinformation.

According to yet another aspect of one or more embodiments, there isprovided a method of operating a storage device, the method comprisingproviding a nonvolatile memory configured to store first controlinformation related to a first temperature range and second controlinformation related to a second temperature range different from thefirst temperature range; receiving a temperature sensed from atemperature sensor; determining a target temperature by processing thetemperature; selecting one of the first control information and thesecond control information based on the target temperature; andperforming a memory operation on the nonvolatile memory using the one ofthe first control information and the second control information.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other aspects will become more apparent by describing indetail exemplary embodiments thereof with reference to the attacheddrawings, in which:

FIG. 1 is a block diagram illustrating a host-storage system accordingto some embodiments;

FIG. 2 is a diagram illustrating a configuration of a storagecontroller, a memory interface, and a nonvolatile memory of thehost-storage system of FIG. 1 ;

FIG. 3 is a diagram for describing data stored in the nonvolatile memoryof the host-storage system of FIG. 1 ;

FIG. 4 is a diagram for describing control information of the data ofFIG. 3 ;

FIG. 5 is a diagram for describing operation parameters of the controlinformation of FIG. 4 ;

FIGS. 6A and 6B are diagrams for describing a transition compensationtable, according to some embodiments;

FIG. 7 is a diagram for describing a flash translation layer (FTL) ofthe host-storage system of FIG. 1 ;

FIG. 8 is a flowchart illustrating a method of operating a storagedevice according to some embodiments;

FIG. 9 is a flowchart illustrating a first mode operation of the methodof FIG. 8 , according to some embodiments;

FIG. 10 is a diagram for describing a process of determining a targettemperature, according to some embodiments;

FIG. 11 is a diagram for describing a memory operation performed byusing compensation information, according to some embodiments;

FIG. 12 is a diagram for describing an effect of a storage deviceaccording to some embodiments;

FIG. 13 is a diagram illustrating a storage device according to someother embodiments;

FIG. 14 is a diagram for describing a machine learning module of thestorage device FIG. 13 ;

FIGS. 15 and 16 are diagrams for describing an operation of a storagedevice according to some other embodiments; and

FIG. 17 is a diagram illustrating a data center to which a storageassembly according to some embodiments is applied.

DETAILED DESCRIPTION

Various aspects discussed above are not restricted to those set forthherein. The above and other aspects will become more apparent to one ofordinary skill in the art to which the present disclosure pertains byreferencing the detailed description of the present disclosure givenbelow.

Hereinafter, embodiments of the present disclosure will be describedwith reference to the accompanying drawings.

FIG. 1 is a block diagram illustrating a host-storage system accordingto some embodiments.

A host-storage system 10 may include a host 100 and a storage device200. In some embodiments, the storage device 200 may include a storagecontroller 210 and a nonvolatile memory (NVM) 220. In some embodiments,the host 100 may include a host controller 110 and a host memory 120.The host memory 120 may function as a buffer memory for temporarilystoring data to be transmitted to the storage device 200 or datatransmitted from the storage device 200.

The storage device 200 may include storage media for storing dataaccording to a request from the host 100. For example, the storagedevice 200 may be at least one of a solid state drive (SSD), an embeddedmemory, and a removable external memory. When the storage device 200 isan SSD, the storage device 200 may be a device conforming to thenonvolatile memory express (NVMe) standard.

When the storage device 200 is an embedded memory or an external memory,the storage device 200 may be a device conforming to universal flashstorage (UFS) or embedded multi-media card (eMMC) standards. Each of thehost 100 and the storage device 200 may generate and transmit a packetaccording to the adopted standard protocol.

When the nonvolatile memory 220 of the storage device 200 includes aflash memory, the flash memory may include a 2D NAND memory array or a3D (or vertical) NAND (VNAND) memory array. As another example, thestorage device 200 may include other various types of nonvolatilememories. For example, the storage device 200 may be applied withmagnetic RAM (MRAM), spin-transfer torque MRAM, conductive bridging RAM(CBRAM), ferroelectric RAM (FeRAM), phase RAM (PRAM), resistive RAM, andvarious other types of memories.

In some embodiments, the host controller 110 and the host memory 120 maybe implemented as separate semiconductor chips. Alternatively, in someembodiments, the host controller 110 and the host memory 120 may beintegrated on the same semiconductor chip. As an example, the hostcontroller 110 may be any one of a plurality of modules included in anapplication processor, and such an application processor may beimplemented as a system on chip (SoC). In addition, the host memory 120may be an embedded memory included in the application processor, or anonvolatile memory or memory module disposed outside the applicationprocessor.

The host controller 110 may manage the operation of storing data (e.g.,write data) of the buffer area in the nonvolatile memory 220 or storingdata (e.g., read data) of the nonvolatile memory 220 in the buffer area.

The storage controller 210 may include a host interface (I/F) 211, amemory interface (I/F) 212, and a central processing unit (CPU) 213. Inaddition, the storage controller 210 may further include a flashtranslation layer (FTL) 214, a packet manager 215, a buffer memory 216,an error correction code (ECC) engine 217, and an advanced encryptionstandard (AES) engine 218.

The storage controller 210 may further include a working memory (notillustrated) into which the flash translation layer (FTL) 214 is loaded,and data write and read operations to the nonvolatile memory may becontrolled by the CPU 213 executing the flash translation layer 214loaded into the working memory.

The host interface (I/F) 211 may transmit and receive a packet to andfrom the host 100. The packet transmitted from the host 100 to the hostinterface 211 may include a command or data to be written to thenonvolatile memory 220, or the like, and the packet transmitted from thehost interface 211 to the host 100 may include a response to thecommand, data read from the nonvolatile memory 220, or the like.

The memory interface (I/F) 212 may transmit data to be written to thenonvolatile memory (NVM) 220 to the nonvolatile memory (NVM) 220 or mayreceive data read from the nonvolatile memory (NVM) 220. Such memoryinterface 212 may be implemented to comply with standard conventionssuch as toggle or ONFI.

The flash translation layer (FTL) 214 may perform various functions suchas address mapping, wear-leveling, and garbage collection. The addressmapping operation denotes an operation of converting a logical addressreceived from a host into a physical address used to actually store datain the nonvolatile memory 220. Wear-leveling denotes a technology forpreventing excessive deterioration of a specific block by allowing theblocks in the nonvolatile memory 220 to be used evenly, and may beexemplarily implemented through a firmware technology that balanceserase counts of physical blocks. Garbage collection denotes a technologyfor securing usable capacity in the nonvolatile memory 220 by copyingvalid data of a block to a new block and then erasing the existingblock.

The packet manager 215 may generate a packet according to a protocol ofan interface negotiated with the host 100, or may parse various types ofinformation from a packet received from the host 100. In addition, thebuffer memory 216 may temporarily store data to be written to thenonvolatile memory 220 or data to be read from the nonvolatile memory220. The buffer memory 216 may be configured to be provided in thestorage controller 210, but may be disposed outside the storagecontroller 210.

The ECC engine 217 may perform an error detection and correctionfunction for the read data read from the nonvolatile memory 220. Morespecifically, the ECC engine 217 may generate parity bits for write datato be written to the nonvolatile memory 220, and the parity bitsgenerated as described above may be stored in the nonvolatile memory 220together with the write data. When reading data from the nonvolatilememory 220, the ECC engine 217 may correct the error of the read datausing the parity bits read from the nonvolatile memory 220 together withthe read data, and may output the read data in which the error iscorrected.

The AES engine 218 may perform at least one of an encryption operationor a decryption operation for data inputted to the storage controller210 using a symmetric-key algorithm.

The storage device 200 may further include a temperature sensor (TS)230. The temperature sensor 230 may sense the temperature of the storagedevice 200 and provide the sensed temperature as sensed temperatureinformation to the storage controller 210. Specifically, the temperaturesensor 230 may sense an operating temperature of the storage device 200and/or a temperature of the surrounding environment of the storagedevice 200, or the like, and may provide the operating temperatureand/or the temperature of the surrounding environment as the sensedtemperature information to the storage controller 210.

FIG. 2 is a diagram illustrating a configuration of a storagecontroller, a memory interface, and a nonvolatile memory of thehost-storage system of FIG. 1 . The memory interface (I/F) 212 of FIG. 1may include a controller interface (I/F) circuit 212 a and thenonvolatile memory (NVM) 220 of FIG. 1 may include a memory interface(I/F) circuit 212 b of FIG. 2 .

The nonvolatile memory (NVM) 220 may include first to eighth pins P11 toP18, the memory interface circuit 212 b, a control logic circuit 510,and a memory cell array 520.

The memory interface (I/F) circuit 212 b may receive a chip enablesignal nCE from the storage controller 210 through the first pin P11.The memory interface circuit 212 b may transmit and receive signals toand from the storage controller 210 through the second to eighth pinsP12 to P18 according to the chip enable signal nCE. For example, whenthe chip enable signal nCE is in an enable state (e.g., a low level),the memory interface circuit 212 b may transmit and receive signals toand from the storage controller 210 through the second to eighth pinsP12 to P18.

The memory interface (I/F) circuit 212 b may receive a command latchenable signal CLE, an address latch enable signal ALE, and a writeenable signal nWE from the storage controller 210 through the second tofourth pins P12 to P14, respectively. The memory interface circuit 212 bmay receive a data signal DQ from the storage controller 210 through theseventh pin P17 or transmit the data signal DQ to the storage controller210. A command CMD, an address ADDR, and data may be transmitted throughthe data signal DQ. For example, the data signal DQ may be transmittedthrough a plurality of data signal lines. In this case, the seventh pinP17 may include a plurality of pins corresponding to a plurality of datasignals.

The memory interface (I/F) circuit 212 b may obtain the command CMD fromthe data signal DQ received in an enable interval (e.g., a high levelstate) of the command latch enable signal CLE based on toggle timings ofthe write enable signal nWE. The memory interface circuit 212 b mayobtain the address ADDR from the data signal DQ received in an enableinterval (e.g., a high level state) of the address latch enable signalALE based on toggle timings of the write enable signal nWE.

In some embodiments, the write enable signal nWE may be toggled betweena high level and a low level while maintaining a static state (e.g., ahigh level or a low level). For example, the write enable signal nWE maybe toggled in an interval in which the command CMD or the address ADDRis transmitted. Accordingly, the memory interface circuit 212 b mayobtain the command CMD or the address ADDR based on the toggle timingsof the write enable signal nWE.

The memory interface (I/F) circuit 212 b may receive a read enablesignal nRE from the storage controller 210 through the fifth pin P15.The memory interface circuit 212 b may receive a data strobe signal DQSfrom the storage controller 210 through the sixth pin P16 or transmitthe data strobe signal DQS to the storage controller 210.

In the output operation of the data DATA of the nonvolatile memory 220,the memory interface circuit 212 b may receive the read enable signalnRE toggling through the fifth pin P15 before outputting the data DATA.The memory interface circuit 212 b may generate the data strobe signalDQS toggling based on toggling of the read enable signal nRE. Forexample, the memory interface circuit 212 b may generate the data strobesignal DQS that starts toggling after a predetermined delay (e.g.,tDQSRE) based on the toggling start time of the read enable signal nRE.The memory interface circuit 212 b may transmit the data signal DQincluding the data DATA based on a toggle timing of the data strobesignal DQS. Accordingly, the data DATA may be aligned with the toggletiming of the data strobe signal DQS and transmitted to the storagecontroller 210.

When the data signal DQ including the data DATA is received from thestorage controller 210 in the input operation of the data DATA of thenonvolatile memory 220, the memory interface circuit 212 b may receivethe data strobe signal DQS toggling together with the data DATA from thestorage controller 210. The memory interface circuit 212 b may acquirethe data DATA from the data signal DQ based on the toggle timing of thedata strobe signal DQS. For example, the memory interface circuit 212 bmay obtain the data DATA by sampling the data signal DQ at the risingand falling edges of the data strobe signal DQS.

The memory interface (I/F) circuit 212 b may transmit a ready/busyoutput signal nR/B to the storage controller 210 through the eighth pinP18. The memory interface circuit 212 b may transmit state informationof the nonvolatile memory 220 to the storage controller 210 through theready/busy output signal nR/B. When the nonvolatile memory 220 is in abusy state (that is, when internal operations of the nonvolatile memory220 are being performed), the memory interface circuit 212 b maytransmit the ready/busy output signal nR/B indicating a busy state tothe storage controller 210. When the nonvolatile memory 220 is in aready state (that is, when internal operations of the nonvolatile memory220 are not performed or completed), the memory interface circuit 212 bmay transmit the ready/busy output signal nR/B indicating a ready stateto the storage controller 210.

For example, when the nonvolatile memory (NVM) 220 reads the data DATAfrom the memory cell array 520 in response to a page read command, thememory interface circuit 212 b may transmit the ready/busy output signalnR/B indicating a busy state (e.g., a low level) to the storagecontroller 210. For example, when the nonvolatile memory 220 programsthe data DATA into the memory cell array 520 in response to a programcommand, the memory interface circuit 212 b may transmit the ready/busyoutput signal nR/B indicating a busy state to the storage controller210.

The control logic circuit 510 may overall control various operations ofthe nonvolatile memory 220. The control logic circuit 510 may receivethe command/address CMD/ADDR obtained from the memory interface circuit212 b. The control logic circuit 510 may generate control signals forcontrolling other components of the nonvolatile memory 220 according tothe received command/address CMD/ADDR. For example, the control logiccircuit 510 may generate various control signals for programming thedata DATA in the memory cell array 520 or reading the data DATA from thememory cell array 520.

The memory cell array 520 may store the data DATA obtained from thememory interface circuit 212 b under the control of the control logiccircuit 510. The memory cell array 520 may output the stored data DATAto the memory interface circuit 212 b under the control of the controllogic circuit 510.

The memory cell array 520 may include a plurality of memory cells. Forexample, the plurality of memory cells may be flash memory cells.However, embodiments are not limited thereto, and the memory cells mayinclude resistive random access memory (RRAM) cells, ferroelectricrandom access memory (FRAM) cells, phase change random access memory(PRAM) cells, thyristor random access memory (TRAM) cell, and magneticrandom access memory (MRAM) cells, or the like. Hereinafter, embodimentswill be described focusing on an embodiment in which the memory cellsare NAND flash memory cells.

The storage controller 210 may include first to eighth pins P21 to P28and the controller interface (I/F) circuit 212 a. The first to eighthpins P21 to P28 may correspond respectively to the first to eighth pinsP11 to P18 of the nonvolatile memory 220.

The controller interface (I/F) circuit 212 a may transmit the chipenable signal nCE to the nonvolatile memory 220 through the first pinP21. The controller interface circuit 212 a may transmit and receivesignals to and from the nonvolatile memory 220 selected through the chipenable signal nCE through the second to eighth pins P22 to P28.

The controller interface (I/F) circuit 212 a may transmit the commandlatch enable signal CLE, the address latch enable signal ALE, and thewrite enable signal nWE to the nonvolatile memory 220 through the secondto fourth pins P22 to P24. The controller interface circuit 212 a maytransmit the data signal DQ to the nonvolatile memory 220 through theseventh pin P27 or may receive the data signal DQ from the nonvolatilememory 220.

The controller interface (I/F) circuit 212 a may transmit the datasignal DQ including the command CMD or the address ADDR to thenonvolatile memory 220 together with the write enable signal nWE to betoggled. The controller interface circuit 212 a may transmit the datasignal DQ including the command CMD to the nonvolatile memory 220 as thecommand latch enable signal CLE having an enable state is transmitted,and may transmit the data signal DQ including the address ADDR to thenonvolatile memory 220 as the address latch enable signal ALE having anenable state is transmitted.

The controller interface (I/F) circuit 212 a may transmit the readenable signal nRE to the nonvolatile memory 220 through the fifth pinP25. The controller interface circuit 212 a may receive the data strobesignal DQS from the nonvolatile memory 220 or transmit the data strobesignal DQS to the nonvolatile memory 220, through the sixth pin P26.

In the output operation of the data DATA of the nonvolatile memory 220,the controller interface circuit 212 a may generate the read enablesignal nRE toggling, and transmit the read enable signal nRE to thenonvolatile memory 220. For example, the controller interface circuit212 a may generate the read enable signal nRE that changes from a fixedstate (e.g., a high level or a low level) to a toggle state before thedata DATA is outputted. Accordingly, the data strobe signal DQS thattoggles based on the read enable signal nRE may be generated in thenonvolatile memory 220. The controller interface circuit 212 a mayreceive the data signal DQ including the data DATA together with thedata strobe signal DQS toggling from the nonvolatile memory 220. Thecontroller interface circuit 212 a may obtain the data DATA from thedata signal DQ based on the toggle timing of the data strobe signal DQS.

In the input operation of the data DATA of the nonvolatile memory 220,the controller interface circuit 212 a may generate the data strobesignal DQS toggling. For example, the controller interface circuit 212 amay generate the data strobe signal DQS that changes from a fixed state(e.g., a high level or a low level) to a toggle state beforetransmitting the data DATA. The controller interface circuit 212 a maytransmit the data signal DQ including the data DATA to the nonvolatilememory 220 based on toggle timings of the data strobe signal DQS.

The controller interface (I/F) circuit 212 a may receive the ready/busyoutput signal nR/B from the nonvolatile memory 220 through the eighthpin P28. The controller interface circuit 212 a may determine stateinformation of the nonvolatile memory 220 based on the ready/busy outputsignal nR/B.

FIG. 3 is a diagram for describing data stored in the nonvolatile memoryof the host-storage system of FIG. 1 . FIG. 4 is a diagram fordescribing control information of the data of FIG. 3 . FIG. 5 is adiagram for describing operation parameters of the control informationof FIG. 4 . FIGS. 6A and 6B are diagrams for describing a transitioncompensation table, according to embodiments.

Referring to FIG. 3 , the nonvolatile memory 220 may include a pluralityof storage units 220 a to 220 n. In some embodiments, each of thestorage units 220 a to 220 n may include a flash memory. In this case,the flash memory may include a 2D NAND memory array or a 3D (orvertical) NAND (VNAND) memory array. In some other embodiments, each ofthe storage units 220 a to 220 n may include, for example, MRAM, spintransfer torque MRAM, conductive bridging RAM, FeRAM, PRAM, resistivememory, or the like.

Among the plurality of storage units 220 a to 220 n, one of theplurality of storage units 220 a to 220 n, for example, the storage unit220 n in the embodiment illustrated in FIG. 3 , may include atemperature history (TH) 221, control information (CoI) 222, and atransition compensation table (TCT) 223. Although the drawingillustrates a configuration in which the temperature history 221, thecontrol information 222, and the transition compensation table 223 areall stored in the storage unit 220 n, embodiments are not limitedthereto. In some embodiments, each of the temperature history 221, thecontrol information 222, and the transition compensation table 223 maybe stored in different storage units among the plurality of storageunits 220 a to 220 n. In some embodiments, the temperature history 221,the control information 222 and the transition compensation table 223may be stored in each of the plurality of storage units 220 a to 220 n.

The storage unit from among the plurality of storage units 220 a to 220n in which the temperature history 221, the control information 222, andthe transition compensation table 223 are stored may be specified by thestorage controller 210. That is, the storage controller 210 may knowwhich storage unit of the plurality of storage units 220 a to 220 nstores the temperature history 221, the control information 222, and thetransition compensation table 223.

The temperature history (TH) 221 may receive and store the temperature(or temperature information) sensed from the temperature sensor 230.That is, in the temperature history 221, as illustrated in FIG. 10 to bedescribed in more detail below, temperatures (T1 to TP, where P is anatural number) sensed by the temperature sensor 230 for each sensingperiod SD may be accumulated and stored.

The control information (CoI) 222 may include information related to amemory operation performed in a specific temperature range. The memoryoperation may include one or more of a read operation in which thestorage controller 210 reads data stored in the nonvolatile memory 220,a write operation in which the storage controller 210 writes data to thenonvolatile memory 220, and an erase operation in which the storagecontroller 210 erases at least a part of the nonvolatile memory 220, butembodiments are not limited thereto.

That is, the control information 222 may include information related toa read operation performed in a specific temperature range, informationrelated to a write operation performed in a specific temperature range,and/or information related to an erase operation performed in a specifictemperature range, but embodiments are not limited thereto.

Specifically, referring to FIG. 4 , the control information 222 mayinclude an operation parameter OP for determining a memory operationperformed in a specific temperature range and a defense code DC foroptimizing a memory operation.

In some embodiments, the control information 222 may include m (where mis a natural number) temperature ranges, and operation parameters OP1 toOPm and defense codes DC1 to DCm, corresponding to the respectivetemperature ranges.

For example, an operation parameter OP1 and a defense code DC1 may bethe operation parameter and the defense code that are used when thestorage device performs a memory operation in the temperature range T0to T1, an operation parameter OP2 and a defense code DC2 may be theoperation parameter and the defense code that are used when the storagedevice performs a memory operation in the temperature range T1 to T2,and an operation parameter OPm and a defense code DCm may be theoperation parameter and the defense code that are used when the storagedevice performs a memory operation in the temperature range T(m−1) toTm.

In some embodiments, the operation parameter OP may include a read levelvoltage for sensing data stored in a memory cell.

Referring to FIG. 5 , the distribution of the memory cells in thetemperature range T0 to T1 and the distribution of the memory cells inthe temperature range T1 to T2 may be different from each other.Accordingly, when the same read level voltage is used in a case wherethe storage device operates in the temperature range T0 to T1 and in acase where the storage device operates in the temperature range T1 toT2, a read failure is likely to occur. Accordingly, the operatingparameter OP1 of the temperature range T0 to T1 may include a first readlevel voltage RV1, and the operating parameter OP2 of the temperaturerange T1 to T2 may include a second read level voltage RV2.

The read level voltage is provided as an example of the operationparameter OP, but embodiments are not limited thereto. The operationparameter OP may include other information (not illustrated) thatdetermines a memory operation performed in a specific temperature range.

The defense code DC may include an algorithm for optimizing a memoryoperation performed in a specific temperature range. Such an example mayinclude a read-retry algorithm or the like, but embodiments are notlimited thereto.

The transition compensation table (TCT) 223 may include compensationinformation for compensating a memory operation when the storage devicetransitions from operating in the first temperature range to operatingin the second temperature range.

Specifically, referring to FIG. 6A, the transition compensation table223 may include compensation information CI1 to CI(m−1) according to thetemperature T1 to T(m−1) at which the transition has occurred. Thecompensation information CI may include, for example, temperatureinformation corresponding to data, an operation parameter used forcompensation, a defense code used for compensation, or the like, butembodiments are not limited thereto.

For example, when data is written to the nonvolatile memory 220 in thetemperature range T0 to T1 and the operation of reading the written datais to be performed in the temperature range T1 to T2, the compensationinformation CI may include information (e.g., information on a change ina read level voltage, information on a change in a read-retry algorithm,or the like) for improving the reliability of such a read operation. Forexample, the transition compensation table may include compensationinformation CI1 corresponding to a transition from the temperature rangeT0 to T1 to the temperature range T1 to T2.

Specifically, referring to FIG. 6B, the transition compensation table223 may include offset values for compensating a memory operation whenthe storage device transitions from operating in the first temperaturerange to operating in the second temperature range.

For example, when the target temperature of the storage device operatingat T1 is changed to T2, an offset of a millivolts (mV) may be added as aprogram offset, a read offset, and a defense code offset. When thetarget temperature of the storage device operating at T1 is changed toT3, an offset of b mV may be added as a program offset, a read offset,and a defense code offset. When the target temperature of the storagedevice operating at T1 is changed to T4, an offset of c mV may be addedas a program offset, a read offset, and a defense code offset.

Conversely, when the target temperature of the storage device operatingat T4 is changed to T3, an offset of a mV may be reduced as a programoffset, a read offset, and a defense code offset. The transitioncompensation table 223 may store offset values according to a change inoperating temperature as described above.

In the above description, only an example in which the controlinformation 222 and the transition compensation table 223 are stored inthe nonvolatile memory 220 has been described, but embodiments are notlimited thereto. For example, in some embodiments, the controlinformation 222 and the transition compensation table 223 may be storedin a storage area (e.g., a cloud storage or the like) other than thenonvolatile memory 220, and the storage controller 210 may use thecontrol information and the transition compensation table that have beenprovided through, for example, a network or the like. In addition, insome embodiments, the storage controller 210 may receive the controlinformation 222 and the transition compensation table 223 through, forexample, a network or the like, may store the control information andthe transition compensation table in the nonvolatile memory of thestorage device 200 such as the buffer memory 216, and then may use thecontrol information and the transition compensation table.

FIG. 7 is a diagram for describing the flash translation layer (FTL) ofthe host-storage system of FIG. 1 .

Referring to FIGS. 1 and 7 , the flash translation layer 214 of thestorage controller 210 may include a target temperature determinationmodule (TTDM) 214 a, an operation parameter selection module (OPSM) 214b, and a defense code selection module (DCSM) 214 c.

In some embodiments, the target temperature determination module 214 a,the operation parameter selection module 214 b, and the defense codeselection module 214 c may be implemented in software, for example. Whenthe CPU 213 executes the target temperature determination module 214 a,the operation parameter selection module 214 b, and the defense codeselection module 214 c, the storage controller 210 may perform theoperation implemented in each module. However, embodiments are notlimited thereto.

The target temperature determination module (TTDM) 214 a may receive thetemperature sensed from the temperature sensor 230 and process thesensed temperature to determine the target temperature. A detaileddescription of the processing of the target temperature determinationmodule 214 a will be given later.

The operation parameter selection module (OPSM) 214 b may select anoperation parameter corresponding to the target temperature among theoperation parameters (e.g., OP1 to OPm in FIG. 4 ) stored in thenonvolatile memory 220 based on the target temperature determined by thetarget temperature determination module 214 a.

The defense code selection module (DCSM) 214 c may select a defense codecorresponding to the target temperature among the defense codes (e.g.,DC1 to DCm in FIG. 4) stored in the nonvolatile memory 220 based on thetarget temperature determined by the target temperature determinationmodule 214 a.

When the operation parameter and the defense code corresponding to thetarget temperature are selected in this way, the storage controller 210may request the selected operation parameter and defense code from thenonvolatile memory 220, and the nonvolatile memory 220 may provide theselected operation parameter and defense code to the storage controller210.

FIG. 8 is a flowchart illustrating a method of operating a storagedevice according to some embodiments.

Referring to FIG. 8 , the storage device is powered up (step S100).

Subsequently, it is checked whether a mode enable signal is received(step S200).

When the mode enable signal is received (or the signal level of the modeenable signal is the first level) (Yes in step S200), the storage deviceoperates in a first mode (step S300). In contrast, when the mode enablesignal is not received (or when the signal level of the mode enablesignal is the second level) (No in step S200), the storage deviceoperates in a second mode (step S400).

Referring to FIG. 3 , in the embodiment of FIGS. 1-8 , the first modemay be a mode that operates using the control information 222 for eachtemperature range stored in the nonvolatile memory 220 described above,and the second mode may be a mode that operates without using thecontrol information 222 for each temperature range stored in nonvolatilememory 220.

That is, the first mode may be a mode in which a memory operation isperformed using control information corresponding to the operatingtemperature sensed by the temperature sensor 230, and the second modemay be a mode in which a memory operation is performed irrespective ofthe operating temperature sensed by the temperature sensor and insteadis performed according to the control information that has already beenset at the time of manufacture in consideration of the operatingtemperature and environment of the storage device. However, theoperation of the second mode is not limited thereto, and detailedoperations of the second mode may be modified and implemented.

Hereinafter, the first mode operation will be described in more detailwith reference to FIGS. 9 to 11 .

FIG. 9 is a flowchart illustrating the first mode operation of themethod of FIG. 8 . FIG. 10 is a diagram for describing a process ofdetermining a target temperature. FIG. 11 is a diagram for describing amemory operation performed by using compensation information.

Referring to FIG. 9 , the temperature sensor 230 performs temperaturesensing (step S302). For example, as illustrated in FIG. 10 , thetemperature sensor 230 may sense the temperature of the storage devicefor each sensing period SD. In some embodiments, the temperature sensor230 may sense an ambient temperature of the storage device for eachsensing period SD.

Referring back to FIG. 9 , the temperature sensed by the temperaturesensor 230 may be transmitted to the nonvolatile memory 220 (step S304).

Referring to FIG. 2 , when the data signal DQ including temperatureinformation is received from the storage controller 210, the memoryinterface circuit 212 b of the nonvolatile memory 220 may receive thedata strobe signal DQS toggling together with temperature informationfrom the storage controller 210. The memory interface circuit 212 b mayobtain temperature information from the data signal DQ based on thetoggle timing of the data strobe signal DQS. For example, the memoryinterface circuit 212 b may obtain the temperature information bysampling the data signal DQ at the rising and falling edges of the datastrobe signal DQS.

Referring to FIG. 9 again, the nonvolatile memory 220 having receivedthe temperature information stores the received temperature information(step S306).

Referring to FIG. 3 , temperature information received in a specificstorage unit 220 n among the plurality of storage units 220 a to 220 nof the nonvolatile memory 220 may be stored in the form of thetemperature history 221. That is, in the specific storage unit 220 namong the plurality of storage units 220 a to 220 n of the nonvolatilememory 220, as illustrated in FIG. 10 , the sensed temperatures T1 to TPmay be stored for each sensing period SD over a period P (where P is anatural number). The specific storage unit 220 n may be predetermined.

Although FIG. 9 illustrates that the temperature information sensed fromthe temperature sensor 230 is directly stored in the nonvolatile memory220 for convenience of understanding, this operation may be performedunder the control of the storage controller 210.

Referring to FIG. 9 again, temperatures within a window are transmittedto the storage controller 210 (step S308). The window may bepredetermined.

Referring to FIGS. 3 and 10 , temperatures within a window denotestemperatures within a range set by the storage controller 210 amongtemperatures stored in the temperature history 221. The range may bepredetermined. For example, when the storage controller 210 sets Q(where Q is a natural number) sensing periods SD as a window from thecurrent time point, the temperatures sensed during the past Q sensingperiods including the temperature TP at the current time point may beprovided to the storage controller 210. In other words, the temperaturewindow looks back Q sensing periods SD from the temperature TP at thecurrent time point.

Referring to FIG. 9 again, the storage controller 210 that has receivedtemperatures within the window processes the temperatures to determine atarget temperature, and control information corresponding to thedetermined target temperature (step S310).

In some embodiments, processing the temperatures to determine the targettemperature by the storage controller 210 that has received thetemperatures within the window may include, for example, calculating aweighted moving average of the temperatures within the window anddetermining the calculated weighted moving average as the targettemperature by the storage controller 210.

In this case, the weighted moving average St may be calculated using,for example, the following Eq. 1:

$\begin{matrix}{S_{t} = \left\{ \begin{matrix}\theta_{1} & {t = 1} \\\frac{{\beta \cdot S_{t - 1}} + {\left( {1 - \beta} \right) \times \theta_{t}}}{\left( {1 - \beta^{t}} \right)} & {t > 1}\end{matrix} \right.} & {{Eq}.1}\end{matrix}$

where β may be changed with a tuning parameter. Increasing the β valuemakes the weighted moving average St less sensitive to temperaturechanges, and decreasing the β value makes the weighted moving average Stmore sensitive to changes in temperature values.

When the target temperature is determined in this way, the storagecontroller 210 may check which temperature interval of FIG. 4 thedetermined target temperature belongs to, and may determine controlinformation (e.g., the operation parameter OP and the defense code DC)of the temperature interval to which the target temperature belongs.

Referring to FIG. 9 again, it is determined whether new controlinformation CoI is necessary (step S310).

For example, referring to FIG. 4 together with FIG. 9 , when the currenttime point is t, in a case where the target temperature determined atthe time point t−1 belongs to the temperature range T0 to T1, and thetarget temperature determined at the current time point also belongs tothe temperature range T0 to T1, the storage controller 210 does not needthe new control information CoI because the operation parameter OP1 andthe defense code DC1 used for a memory operation at the time point t−1may be used (No in step S312). Accordingly, the storage controller 210performs a memory operation using the previously used operationparameter and the defense code (step S318).

However, in a case where the target temperature determined at the timepoint t−1 belongs to the temperature range T0 to T1 but the targettemperature determined at the current time point belongs to thetemperature range T1 to T2, the storage controller 210 may not use theoperation parameter OP1 and defense code DC1 that have been used for thememory operation at the time point t−1, for the memory operation at thecurrent time point. Rather, it is necessary to compensate for the memoryoperation according to the temperature range change (transition).Accordingly, this case is a case where the new control information CoIis necessary (Yes in step S312).

When such new control information CoI is necessary, the storagecontroller 210 requests the new control information CoI and thecompensation information CI from the nonvolatile memory 220 (step S314).In response thereto, the nonvolatile memory 220 transmits the newcontrol information CoI and the compensation information CI to thestorage controller 210 (step S316).

Referring to FIG. 2 , for example, the memory interface circuit 212 bmay generate the data strobe signal DQS that starts toggling after adelay (e.g., tDQSRE) based on the toggling start time of the read enablesignal nRE. The delay may be predetermined. The memory interface circuit212 b may transmit the data signal DQ including the new controlinformation CoI and the compensation information CI based on a toggletiming of the data strobe signal DQS. Accordingly, the new controlinformation CoI and the compensation information CI may be aligned withthe toggle timing of the data strobe signal DQS and transmitted to thestorage controller 210.

The storage controller 210, which has been provided with the new controlinformation CoI and the compensation information CI, uses the newcontrol information CoI (e.g., new operation parameters and defensecodes) and the compensation information CI to perform the memoryoperation (step S318).

The operation described above will be described using the exampleillustrated in FIG. 11 as follows.

Referring to FIGS. 4, 6A and 11 , at the time point t1, the calculatedtarget temperature TT belongs to the interval T0 to T1, and even beforethe time point t1, the calculated target temperature TT belongs to theinterval T0 to T1. Accordingly, the storage controller may perform amemory operation using the operation parameter OP1 and the defense codeDC1.

At the next time point t2, the calculated target temperature TT belongsto the interval T1 to T2. However, before the time point t2, thecalculated target temperature TT has belonged to the interval T0 to T1.Accordingly, the storage controller may read the operation parameterOP2, the defense code DC2, and the compensation information CI1 from thenonvolatile memory, and may perform a memory operation using theoperation parameter OP2, the defense code DC2, and the compensationinformation CI1 that have been read.

At the next time point t3, the calculated target temperature TT belongsto the interval T1 to T2, and even before the time point t3, thecalculated target temperature TT belongs to the interval T1 to T2.Accordingly, the storage controller may perform a memory operation usingthe operation parameter OP2, the defense code DC2, and the compensationinformation CI1. That is, the storage controller does not need to readnew information.

FIG. 12 is a diagram for describing an effect of a storage deviceaccording to some embodiments.

FIG. 12 is a graph illustrating changes in operating temperature overtime of storage devices installed and used in a data center. Asillustrated in FIG. 12 , it has been observed that the operatingtemperature of the storage devices does not change significantly overtime unlike the expectation, and the operating temperature maintains aconstant temperature range over time that is different depending on theposition in the server or depending on the server manufacturer.

That is, a storage device C that has been operated at a first positionhaving a low temperature (e.g., 15° C. to 20° C.) environment has beencontinuously operated in a low temperature environment, and a storagedevice A that has been operated at a second position having a hightemperature (e.g., 75° C. to 80° C.) environment has been continuouslyoperated in a high temperature environment. In addition, the operatingtemperature of a storage device B, which has been operated at a thirdposition having an environment between low temperature and hightemperature, also does not change significantly.

In general, the control information used for the memory operation of thestorage device, at the manufacturing stage of the storage device, is setto exhibit at least average performance even in a position within theserver that has an extreme environment, assuming that the operatingtemperature of the storage device randomly changes within the range of,for example, 15° C. to 80° C.

However, when the control information is set and the memory operation isperformed in this way, in the operating environment as illustrated inFIG. 12 , all of the storage devices A, B, and C do not exhibit optimalperformance although control information for each of the storage devicesA, B, and C to exhibit optimal performance exists.

Accordingly, in the embodiment of FIGS. 1-11 , the storage controller210 performs the memory operation using control information (e.g., theoperation parameter OP and the defense code DC) that may exhibit optimalperformance in the temperature interval to which the determined targettemperature belongs, so that the operating performance of the storagedevice may be improved.

FIG. 13 is a diagram illustrating a storage device according to someother embodiments. FIG. 14 is a diagram for describing a machinelearning module of the storage device of FIG. 13 .

Hereinafter, like reference numerals refer to like components and aredundant description of the embodiment of FIGS. 1-12 will be omittedfor conciseness, and differences will be mainly described.

Referring to FIG. 13 , a target temperature determination module 214 dof the flash translation layer 214 of the storage controller 210 of FIG.1 may include a machine learning module (MLM) 214 e.

In some embodiments, the target temperature determination module 214 dand machine learning module 214 e may be implemented in software, forexample. The storage controller 210 of FIG. 1 may perform an operationimplemented in each module by the CPU 213 of FIG. 1 executing the targettemperature determination module 214 d and the machine learning module214 e. However, embodiments are not limited thereto.

The machine learning module (MLM) 214 e may perform machine learningbased on the temperatures that are sensed from the temperature sensor230 in FIG. 1 and stored in the temperature history 221, to predict theoperating temperature of the storage device at a future time point.Further, the target temperature determination module 214 d may determinethe target temperature described above through a processing process forthe prediction temperature. The processing process may be predetermined.

In some embodiments, the machine learning module (MLM) 214 e may performmachine learning based on not only the temperatures stored in thetemperature history 221 but also the operating characteristicinformation of the nonvolatile memory 220 in FIG. 1 according to thetemperatures, to predict the operating temperature of the storage deviceat the future time point. That is, the input received by the machinelearning module 214 e to calculate the operation prediction temperaturemay include the operating characteristic information of the nonvolatilememory 220 in FIG. 1 according to the past operating temperatures andtemperatures stored in the temperature history 221.

Specifically, referring to FIGS. 13 and 14 , the machine learning module(MLM) 214 e may include an input layer, a hidden layer, and an outputlayer.

As the input layer, learning data Time for each time point from the pasttime point k to the current time point t described above may beprovided. The learning data Time at each time point may includeoperation temperature information TI of the storage device and operationcharacteristic information OCI of the nonvolatile memory at thecorresponding operation temperature.

The learning data Time of the input layer may be provided to the hiddenlayer to be learned. In the embodiment illustrated in FIGS. 13-14 , arecurrent neural network (RNN) model capable of precise prediction byreceiving time-series features as a hidden layer may be applied, butembodiments are not limited thereto.

When the learning is completed, a prediction operating temperature at atime point t+1, which is a future time point of the current time pointt, may be calculated as an output layer. The output layer may use amulti-layer perceptron (MLP), but embodiments are not limited thereto.

Hereinafter, operations of the storage device according to some otherembodiments will be described with reference to FIGS. 9, 15 and 16 .

FIGS. 15 and 16 are diagrams for describing an operation of a storagedevice according to some other embodiments.

In the storage device according to the embodiment of FIGS. 15-16 , thetarget temperature determined in the step S310 of FIG. 9 is not thecurrent operating temperature but the operating temperature at a futuretime point.

Accordingly, when the new control information CoI is necessary accordingto the determined target temperature (Yes in step S312), the new controlinformation CoI is not immediately necessary as in the embodimentillustrated in FIG. 9 .

Accordingly, the storage controller 210 may request the nonvolatilememory 220 for the control information CoI corresponding to the targettemperature in consideration of an input/output (I/O) command providedto the storage controller 210.

Specifically, referring to FIG. 15 , suppose that the storage devicethat operates in the temperature interval T0 to T1 as the targettemperature TT predicts that the target temperature TT of the futuretime point t11 from the current time point t10 is the temperatureinterval T1 to T2. In this case, the storage controller only needs toreceive the control information CoI corresponding to the temperatureinterval T1 to T2 before the time point t11.

When, as in the example illustrated in FIG. 15 , there is an interval inwhich the I/O command is stopped between the time point t10 and the timepoint t11, the storage controller may request new control informationCoI from the nonvolatile memory during the interval in which the I/Ocommand is stopped.

However, as in the example illustrated in FIG. 16 , when there is nointerval in which the I/O command is stopped between the time point t10and the time point t11, the storage controller may request new controlinformation CoI from the nonvolatile memory at the time point t11.

FIG. 17 is a diagram illustrating a data center to which a storageassembly according to some embodiments is applied.

Referring to FIG. 17 , a data center 3000 is a facility that collectsvarious types of data and provides services, and may be referred to as adata storage center. The data center 3000 may be a system for operatinga search engine and a database, and may be a computing system used by acompany such as a bank or a government institution. The data center 3000may include application servers 3100 to 3100 n and storage servers 3200to 3200 m. The number of application servers 3100 to 3100 n and thenumber of storage servers 3200 to 3200 m may be variously selectedaccording to embodiments, and the number of application servers 3100 to3100 n and the number of storage servers 3200 to 3200 m may be differentfrom each other.

The application server 3100 may include at least one processor 3110 andat least one memory 3120. Similarly, the storage server 3200 may includeat least one processor 3210 and at least one memory 3220. Whendescribing the storage server 3200 as an example, the processor 3210 maycontrol the overall operation of the storage server 3200, and access thememory 3220 to execute commands and/or data loaded in the memory 3220.The memory 3220 may be double data rate synchronous DRAM (DDR SDRAM),high bandwidth memory (HBM), hybrid memory cube (HMC), dual in-linememory module (DIMM), optane DIMM or nonvolatile DIMM (NVMDIMM).Depending on the embodiment, the number of processors 3210 and thenumber of memories 3220 included in the storage server 3200 may bevariously selected.

In some embodiments, the processor 3210 and the memory 3220 may providea processor-memory pair. In some embodiments, the number of processors3210 and the number of memories 3220 may be different from each other.The processor 3210 may include a single core processor or a multiplecore processor. The description of the storage server 3200 may besimilarly applied to the application server 3100. Depending on theembodiment, the application server 3100 may omit the storage device3150. The storage server 3200 may include at least one storage device3250. The number of storage devices 3250 included in the storage server3200 may be variously selected according to the embodiment.

The application servers 3100 to 3100 n and the storage servers 3200 to3200 m may communicate with each other through the network 3300. Thenetwork 3300 may be implemented using fiber channel (FC) or Ethernet orthe like. In this case, FC is a medium used for relatively high-speeddata transmission, and an optical switch that provides highperformance/high availability may be used. The storage servers 3200 to3200 m may be provided as a file storage, a block storage, or an objectstorage according to an access method of the network 3300.

In some embodiments, the network 3300 may be a storage-only network suchas a storage area network (SAN). For example, the SAN may be an FC-SANthat uses an FC network and is implemented according to the FC protocol(FCP). For another example, the SAN may be an IP-SAN that uses a TCP/IPnetwork and is implemented according to an iSCSI (SCSI over TCP/IP orInternet SCSI) protocol. In other embodiments, a network 1300 may be ageneral network such as a TCP/IP network. For example, the network 1300may be implemented according to protocols such as FC over Ethernet(FCoE), network attached storage (NAS), and NVMe over fabrics (NVMe-oF).

Hereinafter, a description will be given focusing on the applicationserver 3100 and the storage server 3200. The description of theapplication server 3100 may be applied to the other application server3100 n, and the description of the storage server 3200 may be applied tothe other storage server 3200 m.

The application server 3100 may store data requested to be stored by auser or a client in one of the storage servers 3200 to 3200 m throughthe network 3300. In addition, the application server 3100 may acquiredata requested to be read by a user or a client from one of the storageservers 3200 to 3200 m through the network 3300. For example, theapplication server 3100 may be implemented as a web server or a databasemanagement system (DBMS), or the like.

The application server 3100 may access the memory 3120 n or the storagedevice 3150 n included in the other application server 3100 n throughthe network 3300, or may access the memories 3220 to 3220 m or thestorage devices 3250 to 3250 m included in the storage servers 3200 to3200 m through the network 3300. Accordingly, the application server3100 may perform various operations on data stored in the applicationservers 3100 to 3100 n and/or the storage servers 3200 to 3200 m. Forexample, the application server 3100 may execute a command for moving orcopying data between the application servers 3100 to 3100 n and/or thestorage servers 3200 to 3200 m. At this time, the data may be moved fromthe storage devices 3250 to 3250 m of the storage servers 3200 to 3200m, to the memories 3120 to 3120 n of the application servers 3100 to3100 n, either through the memories 3220 to 3220 m of the storageservers 3200 to 3200 m or directly. The data moving through the network3300 may be encrypted data for security or privacy.

Referring to the storage server 3200 as an example, an interface (I/F)3254 may provide a physical connection between the processor 3210 and acontroller 3251 and a physical connection between a network interfacecontroller (NIC) 3240 and the controller 3251. For example, theinterface 3254 may be implemented in a direct attached storage (DAS)method in which the storage device 3250 is directly connected with adedicated cable. In addition, for example, the interface 3254 may beimplemented as various types of interfaces, such as advanced technologyattachment (ATA), serial ATA (SATA), external SATA (e-SATA), smallcomputer small interface (SCSI), serial attached SCSI (SAS), peripheralcomponent interconnection (PCI), PCI express (PCIe), NVM express (NVMe),IEEE 1394, universal serial bus (USB), secure digital (SD) card,multi-media card (MMC), embedded multi-media card (eMMC), universalflash storage (UFS), embedded universal flash storage (eUFS), andcompact flash (CF) card.

The storage server 3200 may further include a switch 3230 and the NIC3240. The switch 3230 may selectively connect the processor 3210 to thestorage device 3250 or may selectively connect the NIC 3240 to thestorage device 3250 under the control of the processor 3210.

In some embodiments, the NIC 3240 may include a network interface card,a network adapter, or the like. The NIC 3240 may be connected to thenetwork 3300 through a wired interface, a wireless interface, aBluetooth interface, an optical interface, or the like. The NIC 3240 mayinclude an internal memory, a DSP, a host bus interface, or the like,and may be connected to the processor 3210 and/or the switch 3230, orthe like through a host bus interface. The host bus interface may beimplemented as one of the examples of the interface 3254 describedabove. In some embodiments, the NIC 3240 may be integrated with at leastone of the processor 3210, the switch 3230, and the storage device 3250.

In the storage servers 3200 to 3200 m or the application servers 3100 to3100 n, the processor may send a command to the storage devices 3130 to3130 n, 3250 to 3250 m or the memories 3120 to 3120 n, 3220 to 3220 m toprogram or read data. In this case, the data may be data that has beenerror-corrected through an error correction code (ECC) engine. The datamay be data that has been processed by data bus inversion (DBI) or datamasking (DM), and may include cyclic redundancy code (CRC) information.The data may be encrypted data for security or privacy.

The storage devices 3150 to 3150 m and 3250 to 3250 m may transmit acontrol signal and a command/address signal to NAND flash memory devices3252 to 3252 m in response to a read command received from theprocessor. Accordingly, when data is read from the NAND flash memorydevice 3252 to 3252 m, a read enable (RE) signal may serve to beinputted as a data output control signal and to output data to the DQbus. The data strobe signal (DQS) may be generated by using the REsignal. The command and address signals may be latched in the pagebuffer according to the rising edge or falling edge of a write enable(WE) signal.

The controller 3251 may overall control the operation of the storagedevice 3250. In some embodiments, the controller 3251 may include astatic random access memory (SRAM). The controller 3251 may write datato the NAND flash 3252 in response to a write command, or read data fromthe NAND flash 3252 in response to a read command. For example, thewrite command and/or the read command may be provided from the processor3210 in the storage server 3200, the processor 3210 m in another storageserver 3200 m, or the processors 3110 and 3110 n in the applicationservers 3100 and 3100 n. The DRAM 3253 may temporarily store (buffer)data to be written to the NAND flash 3252 or data read from the NANDflash 3252. In addition, the DRAM 3253 may store metadata. Here, themetadata may be data generated by the controller 3251 to manage the userdata or the NAND flash 3252. The storage device 3250 may include asecure element (SE) for security or privacy.

In some embodiments, the storage device 3250 of the storage server 3200to the storage device 3250 m of the storage server 3200 m may employ thestorage devices described above.

However, the storage device 3250 may continue to be operated in a firsttemperature range due to the mounting position thereof, the dispositionshape of the storage server 3200, or the like, and the storage device3250 m may continue to be operated in a second temperature rangedifferent from the first temperature range due to the mounting positionthereof, the disposition shape of the storage server 3200 m, or thelike. In this case, although the first control information and thesecond control information are stored in the nonvolatile memory of thestorage device 3250, the storage device 3250 may continue to operateusing the first control information, and although the first controlinformation and the second control information are also stored in thenonvolatile memory of the storage device 3250 m, the storage device 3250m may continue to operate using the second control information.

In addition, the storage device 3250 mounted at the first position ofthe storage server 3200 and the storage device 3250 mounted at thesecond position of the storage server 3200 may also continue to operatein different temperature ranges due to the dispositions thereof or thelike. Even in this case, although the first control information and thesecond control information are stored in the nonvolatile memory of thestorage device 3250 mounted at the first position of the storage server3200, the storage device 3250 mounted at the first position of thestorage server 3200 may continue to operate using the first controlinformation, and although the first control information and the secondcontrol information are also stored in the nonvolatile memory of thestorage device 3250 mounted at the second position of the storage server3200, the storage device 3250 mounted at the second position of thestorage server 3200 may continue to operate using the second controlinformation.

Those skilled in the art will appreciate that many variations andmodifications may be made to the embodiments without substantiallydeparting from the principles of the present disclosure. Therefore, thedisclosed embodiments of the disclosure are used in a generic anddescriptive sense only and not for purposes of limitation.

What is claimed is:
 1. A method of operating a storage device, the method comprising: providing a nonvolatile memory configured to store first control information related to a first temperature range and second control information related to a second temperature range different from the first temperature range; receiving a temperature sensed from a temperature sensor; determining a target temperature by processing the temperature; selecting one of the first control information and the second control information based on the target temperature; and performing a memory operation on the nonvolatile memory using the one of the first control information and the second control information, wherein the first control information includes: an operation parameter of the memory operation performed in the first temperature range; and a defense code including a read-retry algorithm for optimizing the memory operation performed in the first temperature range, and wherein the method further comprises: receiving a mode enable signal, wherein the storage device operates in a first mode in which the memory operation is performed on the nonvolatile memory using the first control information and the second control information in response to a first mode enable signal, and wherein the storage device, in response to a second mode enable signal different from the first mode enable signal, performs the memory operation on the nonvolatile memory according to pre-set temperature control information that has been set in consideration of an operating temperature and environment of the storage device without using the first control information and the second control information.
 2. The method of claim 1, wherein the selecting of one of the first control information and the second control information based on the target temperature comprises requesting the one of the first control information and the second control information corresponding to the target temperature from the nonvolatile memory.
 3. The method of claim 1, wherein the determining of the target temperature by processing the temperature comprises calculating a weighted moving average of temperatures within a window among a plurality of sensed temperatures, and determining the target temperature based on the weighted moving average.
 4. The method of claim 1, wherein the determining of the target temperature by processing the temperature comprises calculating a prediction temperature at a future time by performing machine learning based on historic sensed temperatures, and determining the target temperature based on the prediction temperature.
 5. The method of claim 1, wherein the pre-set temperature control information has been set at a time of manufacture of the storage device.
 6. A storage device comprising: a temperature sensor; a nonvolatile memory configured to store first control information related to a first temperature range and second control information related to a second temperature range different from the first temperature range; and a storage controller configured to receive a temperature sensed from the temperature sensor, determine a target temperature by processing the temperature, select one of the first control information and the second control information based on the target temperature, and perform a memory operation on the nonvolatile memory using the one of the first control information and the second control information, wherein the first control information includes: an operation parameter of the memory operation performed in the first temperature range; and a defense code including a read-retry algorithm for optimizing the memory operation performed in the first temperature range, and wherein in a first mode, the storage controller performs the memory operation on the nonvolatile memory using one of the first control information and the second control information, and in a second mode different from the first mode, the storage controller performs the memory operation on the nonvolatile memory according to pre-set temperature control information that has been set in consideration of an operating temperature and environment of the storage device, irrespective of the temperature sensed by the temperature sensor.
 7. The storage device of claim 6, wherein the memory operation includes one or more of: a read operation of reading data stored in the nonvolatile memory; a write operation of writing data to the nonvolatile memory; and an erase operation of erasing at least a part of the nonvolatile memory.
 8. The storage device of claim 6, wherein the nonvolatile memory further stores a transition compensation table for a transition from the first temperature range to the second temperature range, the transition compensation table including compensation information including offset values for the operation parameter and the defense code, and the storage controller performs the memory operation on the nonvolatile memory based on the compensation information in the transition compensation table in response to the target temperature being changed from the first temperature range to the second temperature range.
 9. The storage device of claim 8, wherein in response to the target temperature being changed from the first temperature range to the second temperature range, the storage controller performs the memory operation on the nonvolatile memory using the second control information and the compensation information stored in the transition compensation table.
 10. The storage device of claim 6, wherein the nonvolatile memory generates a data strobe signal, and the nonvolatile memory transmits a data signal including control information selected by the storage controller, to the storage controller, based on a toggle timing of the data strobe signal.
 11. The storage device of claim 6, wherein the storage controller calculates a weighted moving average of temperatures within a window among a plurality of sensed temperatures received from the temperature sensor, and determines the target temperature based on the weighted moving average.
 12. The storage device of claim 6, wherein the storage controller calculates a prediction temperature at a future time by performing machine learning based on historic sensed temperatures, and determines the target temperature at the future time based on the prediction temperature.
 13. The storage device of claim 12, wherein the storage controller calculates the prediction temperature by performing machine learning based on the historic sensed temperatures and operating characteristic information of the nonvolatile memory at the historic sensed temperatures, and determines the target temperature at the future time based on the prediction temperature.
 14. The storage device of claim 12, wherein the storage controller requests control information corresponding to the target temperature from the nonvolatile memory based on whether an input/output (I/O) command provided to the storage controller is stopped.
 15. The storage device of claim 6, wherein the pre-set temperature control information has been set at a time of manufacture of the storage device.
 16. A server device comprising: a first storage device disposed at a first position within the server device and including a first nonvolatile memory; a second storage device disposed at a second position within the server device different from the first position and including a second nonvolatile memory; and a first storage server including at least one of the first storage device and the second storage device, wherein the first storage device receives first control information related to a first temperature range and second control information related to a second temperature range different from the first temperature range, the first storage device includes a first storage controller configured to select one of the first control information and the second control information, and perform a memory operation on the first nonvolatile memory using the one of the first control information and the second control information selected by the first storage controller, the second storage device includes a second storage controller configured to receive the first control information and the second control information, select one of the first control information and the second control information, and perform a memory operation on the second nonvolatile memory using the one of the first control information and the second control information selected by the second storage controller, the first storage controller performs the memory operation on the first nonvolatile memory using the first control information, and the second storage controller performs the memory operation on the second nonvolatile memory using the second control information, wherein the first control information includes: an operation parameter of the memory operation performed in the first temperature range; and a defense code including a read-retry algorithm for optimizing the memory operation performed in the first temperature range, and wherein in a first mode, the first storage controller performs the memory operation on the first nonvolatile memory using the first control information and the second storage controller performs the memory operation on the second nonvolatile memory using the second control information, and in a second mode different from the first mode, the first storage controller performs the memory operation on the first nonvolatile memory and the second storage controller performs the memory operation on the second nonvolatile memory according to pre-set temperature control information that has been set in consideration of an operating temperature and environment of the first storage device, irrespective of the first control information and the second control information.
 17. The server device of claim 16, further comprising a second storage server connected to the first storage server through a network, wherein the first storage device is included in the first storage server, the second storage device is included in the second storage server, the first storage controller receives a temperature sensed from a temperature sensor, processes the temperature to determine a first target temperature, and selects the first control information based on the first target temperature, and the first storage controller calculates a weighted moving average of temperatures within a window among a plurality of sensed temperatures received from the temperature sensor, and determines the first target temperature based on the weighted moving average.
 18. The server device of claim 16, wherein the first storage device and the second storage device are included in the first storage server, the first storage controller receives a temperature sensed from a temperature sensor, processes the temperature to determine a first target temperature, and selects the first control information based on the first target temperature, and the first storage controller calculates a weighted moving average of temperatures within a window among a plurality of sensed temperatures received from the temperature sensor, and determines the first target temperature based on the weighted moving average.
 19. The server device of claim 18, wherein the first storage controller calculates a prediction temperature at a future time by performing machine learning based on the plurality of sensed temperatures, and determines the first target temperature at the future time based on the prediction temperature.
 20. The server device of claim 16, wherein the pre-set temperature control information has been set at a time of manufacture of the first storage device. 